file_name = 'test_file.txt'
# 读取整个文件
with open(file_name, encoding='utf-8') as file_object:
    contents = file_object.read()
print(contents)
# 逐行读取
with open(file_name, encoding='utf-8') as file_object:
    for line in file_object:
        print(line)
# 将文件逐行读取到列表
with open(file_name, encoding='utf-8') as file_object:
    lines = file_object.readlines()

print(lines)
message = "I,really,like,dogs"
# 替换文本
message = message.replace('dog', 'cat')
print(message)
message = message.split(",")
print(message)

# 写文件
with open(file_name, 'w', encoding='utf-8') as file_object:
    file_object.write('I Love programming.')
# 清空文件再写入
input_value = input('请输入要写入的值')
with open(file_name, 'w', encoding='utf-8') as file_object:
    file_object.write(input_value)

# 附加到文件（追加到末尾，不覆盖之前的内容）
with open(file_name, 'a', encoding='utf-8') as file_object:
    file_object.write('This is append content.')

# 练习
# 1、编写一个while 循环，提示用户输入名字。用户输入
# 名字后，在屏幕上打印一句问候语，并将一条到访记录添加到文件
# guest_book.txt中。确保这个文件中的每条记录都独占一行
active = True
while active:
    input_1 = input('请输入用户名（输入quit退出）')
    if input_1 == 'quit':
        active = False
    else:
        with open(file_name, 'a', encoding='utf-8') as file_object:
            file_object.write(f"\n{input_1}")

# 异常 try-except

try:
    print(5 / 0)
except ZeroDivisionError:
    pass

# 练习
# 　1、提示用户提供数值输入时，常出现的一个问题是，用户
# 提供的是文本而不是数。在此情况下，当你尝试将输入转换为整数时，将引发
# ValueError 异常。编写一个程序，提示用户输入两个数，再将其相加并打印
# 结果。在用户输入的任何一个值不是数时都捕获ValueError 异常，并打印一
# 条友好的错误消息。对你编写的程序进行测试：先输入两个数，再输入一些文
# 本而不是数。

input_2 = input("请输入第一个数")
input_3 = input("请输入第二个数")
try:
    sum_result = int(input_2) + int(input_3)
    print(f"{input_2}+{input_3}= {sum_result}")
except ValueError:
    print('输入的不是数字')

# json

import json

json_file_name = 'numbers.json'
# numbers = [2, 3, 5, 7, 11, 13]
# with open('numbers.json', 'w') as file_object:
#     json.dump(numbers, file_object)

with open(json_file_name) as file_object:
    numbers = json.load(file_object)

print(numbers)

username = input('输入用户名')
with open(json_file_name, 'w') as file_object:
    dd = {'username': username}
    json.dump(dd, file_object)
